/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package business;

/**
 *
 * @author vanessa
 */
import dao.LogroDao;
import dominio.Logro;
import java.util.List;
import javax.persistence.*;

public class LogroBO {

    private int ok = 0;

    public int crearLogro(Integer idAsignatura, Integer periodoEvaluacion, String descripcion ) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LogroDao dao = new LogroDao(em);

        em.getTransaction().begin();
        Logro lg = dao.crearLogro(idAsignatura, periodoEvaluacion, descripcion);
        em.getTransaction().commit();
        em.close();
        emf.close();
        if (lg == null) {
            ok = 0;
        } else if (lg.getDescripcion().equals(descripcion)) {
            ok = lg.getIdlogro();
        }

        return ok;
    }

  /*  public Area instanciarArea(Object objeto) {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        AreaDao dao = new AreaDao(em);
        em.getTransaction().begin();
        Area ar = dao.intanciarArea(objeto);
        em.getTransaction().commit();
        em.close();
        emf.close();
        return ar;
    }*/

    public void borrarLogro(Integer idLogro) {
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LogroDao dao = new LogroDao(em);
        em.getTransaction().begin();
        dao.borrarLogro(idLogro);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
    }

    /*public int encontrarArea(Integer idArea) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        AreaDao dao = new AreaDao(em);
        Area ar = dao.encontrarArea(idArea);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (ar == null) {
            ok = 0;
        } else if (ar.getIdArea().equals(idArea)) {
            ok = 1;
        }
        return ok;

    }*/

    /*public int encontrarArea(String nombreArea) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        AreaDao dao = new AreaDao(em);
        Area ar = dao.encontrarArea(nombreArea);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (ar == null) {
            ok = 0;
        } else if (ar.getNombreArea().equals(nombreArea)) {
            ok = ar.getId();
        }
        return ok;

    }
*/
 /*   public Area consultarArea(String nombreArea) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        AreaDao dao = new AreaDao(em);
        Area ar = dao.encontrarArea(nombreArea);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        return ar;
    }
*/

    public int actualizarLogro(Integer idLogro,String descripcionNueva) {
        // find an user
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LogroDao dao = new LogroDao(em);
        em.getTransaction().begin();
        Logro lg = dao.actualizarLogro(idLogro,descripcionNueva);
        em.getTransaction().commit();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        if (lg == null) {
            ok = 0;
        }
        else if (lg.getDescripcion().equals(descripcionNueva)

              ) {
            ok = 1;
        }
        return ok;
    }

/*    public List consultarAreas() {

        List results;
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        AreaDao dao = new AreaDao(em);
        results = dao.encontrarAreas();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        return results;
    }

 */
 /*      public List consultarAreasId() {
        List results;
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        AreaDao dao = new AreaDao(em);
        results = dao.encontrarAreasId();
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        return results;
    }
  */
    
     public List<Logro> consultarListaLogros(Integer idAsignatura, Integer idPeriodo) {
        List<Logro> results;
        EntityManagerFactory emf =
                Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        LogroDao dao = new LogroDao(em);
        results = dao.encontrarLogros(idAsignatura, idPeriodo);
        em.close(); //quitar cuando se tenga montado el serv
        emf.close();//quitar cuando se tenga montado el serv
        return results;
    }


 /*   public void persist(Object object) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SiaPersistencia");
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        try {
            em.persist(object);
            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
        } finally {
            em.close();
        }
    }*/
}